// 路由鉴权:路由能不能被访问到权限设置->全局守卫完成
// 引入路由器
import router from "./router";
// 引入进度条
import Nprogress from 'nprogress'
// 引入进度条的样式
import 'nprogress/nprogress.css'
// 引入用户相关仓库
import useUserStore from "./store/modules/user";
// 引入大仓库
import pinia from './store'
let userStore = useUserStore(pinia)
// 进度条的右上角加载小圆圈不要
Nprogress.configure({ showSpinner: false });

// 存储用户未登录可以访问的路由路径
let whiteList = [
  "/home",
  '/hospital/register',
  '/hospital/detail',
  '/hospital/notice',
  '/hospital/close',
  '/hospital/search'
];
// 添加响应的全局守卫
// 前置守卫
router.beforeEach((to,from,next)=>{
  // 访问路由组件之前，进度条开始动
  Nprogress.start();
  
  
  // 判断用户是否登录-token
  let token = userStore.userInfo.token
  // 用户登录了
  if(token){
    next();
  }else{
    // 用户未登录
    if(whiteList.includes(to.path)){
      next();
    }else{
      // 登录组件显示出来
      userStore.visiable = true;
      next({path:'/home',query:{redirect:to.fullPath}})
    }
  }
});

// 后置路由
router.afterEach((to,from)=>{
  // 访问路由组件成功，进度条消失
  Nprogress.done();
  // 动态设置网页的标题
  document.title = `尚医通-${to.meta.title}`
})